package com.atg.atgchat.init.user.model.entity;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.util.Objects;
import java.util.Optional;

/*
author: atg
time: 2025/1/18 13:03
*/
@Data
public class IpInfo {
    //注册时的ip
    private String createIp;
    //注册时的ip详情
    private IpDetail createIpDetail;
    //最新登录的ip
    private String updateIp;
    //最新登录的ip详情
    private IpDetail updateIpDetail;

    public void refreshIp(String ip) {
        if (StringUtils.isBlank(ip)){
            return;
        }
        if (StringUtils.isBlank(createIp)){
            createIp = ip;
        }
        updateIp = ip;
    }

    public String needRefreshIp() {
        boolean present = Optional.ofNullable(updateIpDetail)
                .map(IpDetail::getIp)
                .filter(ip -> Objects.equals(ip, updateIp))
                .isPresent();
        return present ? null : updateIp;
    }
}
